<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>boston_housing</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
@media (max-width: 991px) {
  #ipython_notebook {
    margin-left: 10px;
  }
}
[dir="rtl"] #ipython_notebook {
  float: right !important;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#login_widget {
  float: right;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  text-align: center;
  vertical-align: middle;
  display: inline;
  opacity: 0;
  z-index: 2;
  width: 12ex;
  margin-right: -12ex;
}
.alternate_upload .btn-upload {
  height: 22px;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
[dir="rtl"] #tabs li {
  float: right;
}
ul#tabs {
  margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
  margin-right: 0px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
  padding-top: 1px;
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
  float: right !important;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: baseline;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
#tree-selector {
  padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
  float: right;
}
#button-select-all {
  min-width: 50px;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
[dir="rtl"] #new-menu {
  text-align: right;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
  float: right !important;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
  font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  border-left-width: 1px;
  padding-left: 5px;
  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
  border-left-color: #90CAF9;
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected {
  border-color: #ababab;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
  div.cell.selected {
    border-color: transparent;
  }
}
div.cell.selected.jupyter-soft-selected {
  border-left-width: 0;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  padding: 0.4em;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  /* .CodeMirror-lines */
  padding: 0;
  border: 0;
  border-radius: 0;
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul {
  list-style: disc;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ul ul {
  list-style: square;
  margin: 0em 2em;
}
.rendered_html ul ul ul {
  list-style: circle;
  margin: 0em 2em;
}
.rendered_html ol {
  list-style: decimal;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
  margin: 0em 2em;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  background-color: #fff;
  color: #000;
  font-size: 100%;
  padding: 0px;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: 1px solid black;
  border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  border: 1px solid black;
  border-collapse: collapse;
  margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
  text-align: left;
  vertical-align: middle;
  padding: 4px;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget {
  float: right !important;
  float: right;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  margin-top: 6px;
}
span.save_widget span.filename {
  height: 1em;
  line-height: 1em;
  padding: 3px;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  display: none;
}
.command-shortcut:before {
  content: "(command)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;">&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;<a class="anchor-link" href="#&#26426;&#22120;&#23398;&#20064;&#24037;&#31243;&#24072;&#32435;&#31859;&#23398;&#20301;">&#182;</a></h1><h2 id="&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;">&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;<a class="anchor-link" href="#&#27169;&#22411;&#35780;&#20215;&#19982;&#39564;&#35777;">&#182;</a></h2><h2 id="&#39033;&#30446;-1:-&#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;">&#39033;&#30446; 1: &#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;<a class="anchor-link" href="#&#39033;&#30446;-1:-&#39044;&#27979;&#27874;&#22763;&#39039;&#25151;&#20215;">&#182;</a></h2><p>欢迎来到机器学习的预测波士顿房价项目！在此文件中，有些示例代码已经提供给你，但你还需要实现更多的功能来让项目成功运行。除非有明确要求，你无须修改任何已给出的代码。以<strong>编程练习</strong>开始的标题表示接下来的内容中有需要你必须实现的功能。每一部分都会有详细的指导，需要实现的部分也会在注释中以<strong>TODO</strong>标出。请仔细阅读所有的提示！</p>
<p>除了实现代码外，你还<strong>必须</strong>回答一些与项目和实现有关的问题。每一个需要你回答的问题都会以<strong>'问题 X'</strong>为标题。请仔细阅读每个问题，并且在问题后的<strong>'回答'</strong>文字框中写出完整的答案。你的项目将会根据你对问题的回答和撰写代码所实现的功能来进行评分。</p>
<blockquote><p><strong>提示：</strong>Code 和 Markdown 区域可通过 <strong>Shift + Enter</strong> 快捷键运行。此外，Markdown可以通过双击进入编辑模式。</p>
</blockquote>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#19968;&#27493;.-&#23548;&#20837;&#25968;&#25454;">&#31532;&#19968;&#27493;. &#23548;&#20837;&#25968;&#25454;<a class="anchor-link" href="#&#31532;&#19968;&#27493;.-&#23548;&#20837;&#25968;&#25454;">&#182;</a></h2><p>在这个项目中，你将利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型，并对模型的性能和预测能力进行测试。通过该数据训练后的好的模型可以被用来对房屋做特定预测---尤其是对房屋的价值。对于房地产经纪等人的日常工作来说，这样的预测模型被证明非常有价值。</p>
<p>此项目的数据集来自<a href="https://archive.ics.uci.edu/ml/datasets.html">UCI机器学习知识库(数据集已下线)</a>。波士顿房屋这些数据于1978年开始统计，共506个数据点，涵盖了麻省波士顿不同郊区房屋14种特征的信息。本项目对原始数据集做了以下处理：</p>
<ul>
<li>有16个<code>'MEDV'</code> 值为50.0的数据点被移除。 这很可能是由于这些数据点包含<strong>遗失</strong>或<strong>看不到的值</strong>。</li>
<li>有1个数据点的 <code>'RM'</code> 值为8.78. 这是一个异常值，已经被移除。</li>
<li>对于本项目，房屋的<code>'RM'</code>， <code>'LSTAT'</code>，<code>'PTRATIO'</code>以及<code>'MEDV'</code>特征是必要的，其余不相关特征已经被移除。</li>
<li><code>'MEDV'</code>特征的值已经过必要的数学转换，可以反映35年来市场的通货膨胀效应。</li>
</ul>
<p>运行下面区域的代码以载入波士顿房屋数据集，以及一些此项目所需的 Python 库。如果成功返回数据集的大小，表示数据集已载入成功。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Import libraries necessary for this project</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">ShuffleSplit</span>

<span class="c1"># Import supplementary visualizations code visuals.py</span>
<span class="kn">import</span> <span class="nn">visuals</span> <span class="k">as</span> <span class="nn">vs</span>

<span class="c1"># Pretty display for notebooks</span>
<span class="o">%</span><span class="k">matplotlib</span> inline

<span class="c1"># Load the Boston housing dataset</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s1">&#39;housing.csv&#39;</span><span class="p">)</span>
<span class="n">prices</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">&#39;MEDV&#39;</span><span class="p">]</span>
<span class="n">features</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">drop</span><span class="p">(</span><span class="s1">&#39;MEDV&#39;</span><span class="p">,</span> <span class="n">axis</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span>
    
<span class="c1"># Success</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Boston housing dataset has </span><span class="si">{}</span><span class="s2"> data points with </span><span class="si">{}</span><span class="s2"> variables each.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">*</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Boston housing dataset has 489 data points with 4 variables each.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#20108;&#27493;.-&#20998;&#26512;&#25968;&#25454;">&#31532;&#20108;&#27493;. &#20998;&#26512;&#25968;&#25454;<a class="anchor-link" href="#&#31532;&#20108;&#27493;.-&#20998;&#26512;&#25968;&#25454;">&#182;</a></h2><p>在项目的第一个部分，你会对波士顿房地产数据进行初步的观察并给出你的分析。通过对数据的探索来熟悉数据可以让你更好地理解和解释你的结果。</p>
<p>由于这个项目的最终目标是建立一个预测房屋价值的模型，我们需要将数据集分为<strong>特征(features)</strong>和<strong>目标变量(target variable)</strong>。</p>
<ul>
<li><strong>特征</strong> <code>'RM'</code>， <code>'LSTAT'</code>，和 <code>'PTRATIO'</code>，给我们提供了每个数据点的数量相关的信息。</li>
<li><strong>目标变量</strong>：<code>'MEDV'</code>，是我们希望预测的变量。</li>
</ul>
<p>他们分别被存在 <code>features</code> 和 <code>prices</code> 两个变量名中。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;">&#32534;&#31243;&#32451;&#20064; 1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-1&#65306;&#22522;&#30784;&#32479;&#35745;&#36816;&#31639;">&#182;</a></h3><p>你的第一个编程练习是计算有关波士顿房价的描述统计数据。我们已为你导入了 <code>NumPy</code>，你需要使用这个库来执行必要的计算。这些统计数据对于分析模型的预测结果非常重要的。
在下面的代码中，你要做的是：</p>
<ul>
<li>计算 <code>prices</code> 中的 <code>'MEDV'</code> 的最小值、最大值、均值、中值和标准差；</li>
<li>将运算结果储存在相应的变量中。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Minimum price of the data</span>
<span class="n">minimum_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1"># TODO: Maximum price of the data</span>
<span class="n">maximum_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1"># TODO: Mean price of the data</span>
<span class="n">mean_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1"># TODO: Median price of the data</span>
<span class="n">median_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">median</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1"># TODO: Standard deviation of prices of the data</span>
<span class="n">std_price</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">prices</span><span class="p">)</span>

<span class="c1"># Show the calculated statistics</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Statistics for Boston housing dataset:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Minimum price: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">minimum_price</span><span class="p">))</span> 
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Maximum price: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">maximum_price</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Mean price: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">mean_price</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Median price $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">median_price</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Standard deviation of prices: $</span><span class="si">{:.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">std_price</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Statistics for Boston housing dataset:

Minimum price: $105000.00
Maximum price: $1024800.00
Mean price: $454342.94
Median price $438900.00
Standard deviation of prices: $165171.13
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#29305;&#24449;&#35266;&#23519;">&#38382;&#39064; 1 - &#29305;&#24449;&#35266;&#23519;<a class="anchor-link" href="#&#38382;&#39064;-1---&#29305;&#24449;&#35266;&#23519;">&#182;</a></h3><p>如前文所述，本项目中我们关注的是其中三个值:<code>'RM'</code>、<code>'LSTAT'</code> 和<code>'PTRATIO'</code>，对每一个数据点:</p>
<ul>
<li><code>'RM'</code> 是该地区中每个房屋的平均房间数量；</li>
<li><code>'LSTAT'</code> 是指该地区有多少百分比的业主属于是低收入阶层（有工作但收入微薄）；</li>
<li><code>'PTRATIO'</code> 是该地区的中学和小学里，学生和老师的数目比（<code>学生/老师</code>）。</li>
</ul>
<p><em>凭直觉，上述三个特征中对每一个来说，你认为增大该特征的数值，<code>'MEDV'</code>的值会是<strong>增大</strong>还是<strong>减小</strong>呢？每一个答案都需要你给出理由。</em></p>
<p><strong>提示：</strong>你预期一个<code>'RM'</code> 值是6的房屋跟<code>'RM'</code> 值是7的房屋相比，价值更高还是更低呢？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#22238;&#31572;&#65306;">&#38382;&#39064; 1 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-1---&#22238;&#31572;&#65306;">&#182;</a></h3><ol>
<li>RM增加，'MEDV'的值也会增加，每个房屋的平均房间数量增加代表着该房屋的平均面积也会有所上升，同时房间数量越多代表其可居住能力越高，理论上其价格也会随之增大；</li>
<li>LSTAT增加，代表着该地区业主中低收入阶层的占比增加，同理代表该地区整体消费能力的下降，那么'MEDV'也理应随之减小；</li>
<li>PIRATIO增加为该地区学生相对教师占比更高,代表该区域老师需求量增加，教师需求量增加自然代表着住房的需求增加，按照供求关系，'MEDV'也会增大。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#19977;&#27493;.-&#24314;&#31435;&#27169;&#22411;">&#31532;&#19977;&#27493;. &#24314;&#31435;&#27169;&#22411;<a class="anchor-link" href="#&#31532;&#19977;&#27493;.-&#24314;&#31435;&#27169;&#22411;">&#182;</a></h2><p>在项目的第三步中，你需要了解必要的工具和技巧来让你的模型进行预测。用这些工具和技巧对每一个模型的表现做精确的衡量可以极大地增强你预测的信心。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;2&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;">&#32534;&#31243;&#32451;&#20064;2&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;2&#65306;&#23450;&#20041;&#34913;&#37327;&#26631;&#20934;">&#182;</a></h3><p>如果不能对模型的训练和测试的表现进行量化地评估，我们就很难衡量模型的好坏。通常我们会定义一些衡量标准，这些标准可以通过对某些误差或者拟合程度的计算来得到。在这个项目中，你将通过运算<a href="https://en.wikipedia.org/wiki/Coefficient_of_determination">决定系数</a> $R^2$ 来量化模型的表现。模型的决定系数是回归分析中十分常用的统计信息，经常被当作衡量模型预测能力好坏的标准。</p>
<p>$R^2$ 的数值范围从0至1，表示<strong>目标变量</strong>的预测值和实际值之间的相关程度平方的百分比。一个模型的 $R^2$ 值为0还不如直接用<strong>平均值</strong>来预测效果好；而一个 $R^2$ 值为1的模型则可以对目标变量进行完美的预测。从0至1之间的数值，则表示该模型中目标变量中有百分之多少能够用<strong>特征</strong>来解释。模型也可能出现负值的 $R^2$，这种情况下模型所做预测有时会比直接计算目标变量的平均值差很多。</p>
<p>在下方代码的 <code>performance_metric</code> 函数中，你要实现：</p>
<ul>
<li>使用 <code>sklearn.metrics</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html"><code>r2_score</code></a> 来计算 <code>y_true</code> 和 <code>y_predict</code> 的 $R^2$ 值，作为对其表现的评判。</li>
<li>将他们的表现评分储存到 <code>score</code> 变量中。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Import &#39;r2_score&#39;</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="k">import</span> <span class="n">r2_score</span>

<span class="k">def</span> <span class="nf">performance_metric</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; Calculates and returns the performance score between </span>
<span class="sd">        true and predicted values based on the metric chosen. &quot;&quot;&quot;</span>
    
    <span class="c1"># TODO: Calculate the performance score between &#39;y_true&#39; and &#39;y_predict&#39;</span>
    <span class="n">score</span> <span class="o">=</span> <span class="n">r2_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span><span class="n">y_predict</span><span class="p">)</span>
    
    <span class="c1"># Return the score</span>
    <span class="k">return</span> <span class="n">score</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-2---&#25311;&#21512;&#31243;&#24230;">&#38382;&#39064; 2 - &#25311;&#21512;&#31243;&#24230;<a class="anchor-link" href="#&#38382;&#39064;-2---&#25311;&#21512;&#31243;&#24230;">&#182;</a></h3><p>假设一个数据集有五个数据且一个模型做出下列目标变量的预测：</p>
<table>
<thead><tr>
<th style="text-align:center">真实数值</th>
<th style="text-align:center">预测数值</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">3.0</td>
<td style="text-align:center">2.5</td>
</tr>
<tr>
<td style="text-align:center">-0.5</td>
<td style="text-align:center">0.0</td>
</tr>
<tr>
<td style="text-align:center">2.0</td>
<td style="text-align:center">2.1</td>
</tr>
<tr>
<td style="text-align:center">7.0</td>
<td style="text-align:center">7.8</td>
</tr>
<tr>
<td style="text-align:center">4.2</td>
<td style="text-align:center">5.3</td>
</tr>
</tbody>
</table>
<p><em>你觉得这个模型已成功地描述了目标变量的变化吗？如果成功，请解释为什么，如果没有，也请给出原因。</em></p>
<p><strong>提示1</strong>：运行下方的代码，使用 <code>performance_metric</code> 函数来计算 <code>y_true</code> 和 <code>y_predict</code> 的决定系数。</p>
<p><strong>提示2</strong>：$R^2$ 分数是指可以从自变量中预测的因变量的方差比例。 换一种说法：</p>
<ul>
<li>$R^2$ 为0意味着因变量不能从自变量预测。</li>
<li>$R^2$ 为1意味着可以从自变量预测因变量。</li>
<li>$R^2$ 在0到1之间表示因变量可预测的程度。</li>
<li>$R^2$ 为0.40意味着 Y 中40％的方差可以从 X 预测。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Calculate the performance of this model</span>
<span class="n">score</span> <span class="o">=</span> <span class="n">performance_metric</span><span class="p">([</span><span class="mi">3</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mf">4.2</span><span class="p">],</span> <span class="p">[</span><span class="mf">2.5</span><span class="p">,</span> <span class="mf">0.0</span><span class="p">,</span> <span class="mf">2.1</span><span class="p">,</span> <span class="mf">7.8</span><span class="p">,</span> <span class="mf">5.3</span><span class="p">])</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Model has a coefficient of determination, R^2, of </span><span class="si">{:.3f}</span><span class="s2">.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">score</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Model has a coefficient of determination, R^2, of 0.923.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-2---&#22238;&#31572;:">&#38382;&#39064; 2 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-2---&#22238;&#31572;:">&#182;</a></h3><p>该模型已成功描述目标变量变化，因为该模型的R2系数为0.923，代表该模型有92%的描述目标变量的变化。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-3:-&#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;">&#32534;&#31243;&#32451;&#20064; 3: &#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-3:-&#25968;&#25454;&#20998;&#21106;&#19982;&#37325;&#25490;">&#182;</a></h3><p>接下来，你需要把波士顿房屋数据集分成训练和测试两个子集。通常在这个过程中，数据也会被重排列，以消除数据集中由于顺序而产生的偏差。
在下面的代码中，你需要</p>
<ul>
<li>使用 <code>sklearn.model_selection</code> 中的 <code>train_test_split</code>， 将 <code>features</code> 和 <code>prices</code> 的数据都分成用于训练的数据子集和用于测试的数据子集。<ul>
<li>分割比例为：80%的数据用于训练，20%用于测试；</li>
<li>选定一个数值以设定 <code>train_test_split</code> 中的 <code>random_state</code> ，这会确保结果的一致性；</li>
</ul>
</li>
<li>将分割后的训练集与测试集分配给 <code>X_train</code>, <code>X_test</code>, <code>y_train</code> 和 <code>y_test</code>。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Import &#39;train_test_split&#39;</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">train_test_split</span>
<span class="c1"># TODO: Shuffle and split the data into training and testing subsets</span>
<span class="n">X_train</span><span class="p">,</span> <span class="n">X_test</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_test</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">prices</span><span class="p">,</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>

<span class="c1"># Success</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Training and testing split was successful.&quot;</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Training and testing split was successful.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#35757;&#32451;&#21450;&#27979;&#35797;">&#38382;&#39064; 3 - &#35757;&#32451;&#21450;&#27979;&#35797;<a class="anchor-link" href="#&#38382;&#39064;-3---&#35757;&#32451;&#21450;&#27979;&#35797;">&#182;</a></h3><p><em>将数据集按一定比例分为训练用的数据集和测试用的数据集对学习算法有什么好处？</em></p>
<p><em>如果用模型已经见过的数据，例如部分训练集数据进行测试，又有什么坏处？</em></p>
<p><strong>提示：</strong> 如果没有数据来对模型进行测试，会出现什么问题？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#22238;&#31572;:">&#38382;&#39064; 3 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-3---&#22238;&#31572;:">&#182;</a></h3><ol>
<li>将数据分为训练集及测试集，训练集用于进行模型的构建，测试集用于检验构建好的模型，评估模型的准确率，将数据集按一定比例分开，可以在尽可能使模型拟合程度贴近整体样本的情况下，判断该模型对未知数据的预测能力；</li>
<li>将模型已经见过的数据用于测试，会导致测试集的测试结果无法用于评估该模型的预测能力。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#22235;&#27493;.-&#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;">&#31532;&#22235;&#27493;. &#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;<a class="anchor-link" href="#&#31532;&#22235;&#27493;.-&#20998;&#26512;&#27169;&#22411;&#30340;&#34920;&#29616;">&#182;</a></h2><p>在项目的第四步，我们来看一下不同参数下，模型在训练集和验证集上的表现。这里，我们专注于一个特定的算法（带剪枝的决策树，但这并不是这个项目的重点），和这个算法的一个参数 <code>'max_depth'</code>。用全部训练集训练，选择不同<code>'max_depth'</code> 参数，观察这一参数的变化如何影响模型的表现。画出模型的表现来对于分析过程十分有益。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#23398;&#20064;&#26354;&#32447;">&#23398;&#20064;&#26354;&#32447;<a class="anchor-link" href="#&#23398;&#20064;&#26354;&#32447;">&#182;</a></h3><p>下方区域内的代码会输出四幅图像，它们是一个决策树模型在不同最大深度下的表现。每一条曲线都直观得显示了随着训练数据量的增加，模型学习曲线的在训练集评分和验证集评分的变化，评分使用决定系数 $R^2$。曲线的阴影区域代表的是该曲线的不确定性（用标准差衡量）。</p>
<p>运行下方区域中的代码，并利用输出的图形回答下面的问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Produce learning curves for varying training set sizes and maximum depths</span>
<span class="n">vs</span><span class="o">.</span><span class="n">ModelLearning</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">prices</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#23398;&#20064;&#26354;&#32447;">&#38382;&#39064; 4 - &#23398;&#20064;&#26354;&#32447;<a class="anchor-link" href="#&#38382;&#39064;-4---&#23398;&#20064;&#26354;&#32447;">&#182;</a></h3><ul>
<li>选择上述图像中的其中一个，并给出其最大深度。</li>
<li>随着训练数据量的增加，训练集曲线的评分有怎样的变化？验证集曲线呢？</li>
<li>如果有更多的训练数据，是否能有效提升模型的表现呢？</li>
</ul>
<p><strong>提示：</strong>学习曲线的评分是否最终会收敛到特定的值？一般来说，你拥有的数据越多，模型表现力越好。但是，如果你的训练和测试曲线以高于基准阈值的分数收敛，这是否有必要？基于训练和测试曲线已经收敛的前提下，思考添加更多训练点的优缺点。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#22238;&#31572;:">&#38382;&#39064; 4 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-4---&#22238;&#31572;:">&#182;</a></h3><p>当max_depth为3时，随着训练数据量的增加，训练集取消的评分呈现下降逐渐趋向于0.8，验证集曲线从数据量50时评分接近0.6，随着数据集的增加逐渐向0.8靠近；随着训练数据的增加，模型的表现相对提升，达到一定数量集后再增加数量集评分基本趋近特定值，提升空间将降低。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#22797;&#26434;&#24230;&#26354;&#32447;">&#22797;&#26434;&#24230;&#26354;&#32447;<a class="anchor-link" href="#&#22797;&#26434;&#24230;&#26354;&#32447;">&#182;</a></h3><p>下列代码内的区域会输出一幅图像，它展示了一个已经经过训练和验证的决策树模型在不同最大深度条件下的表现。这个图形将包含两条曲线，一个是训练集的变化，一个是验证集的变化。跟<strong>学习曲线</strong>相似，阴影区域代表该曲线的不确定性，模型训练和测试部分的评分都用的 <code>performance_metric</code> 函数。</p>
<p><strong>运行下方区域中的代码，并利用输出的图形并回答下面的问题5与问题6。</strong></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">vs</span><span class="o">.</span><span class="n">ModelComplexity</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;">&#38382;&#39064; 5 - &#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;<a class="anchor-link" href="#&#38382;&#39064;-5---&#20559;&#24046;&#65288;bias&#65289;&#19982;&#26041;&#24046;&#65288;variance&#65289;&#20043;&#38388;&#30340;&#26435;&#34913;&#21462;&#33293;">&#182;</a></h3><ul>
<li>当模型以最大深度 1训练时，模型的预测是出现很大的偏差还是出现了很大的方差？</li>
<li>当模型以最大深度10训练时，情形又如何呢？</li>
<li>图形中的哪些特征能够支持你的结论？</li>
</ul>
<p><strong>提示：</strong> 高偏差表示欠拟合（模型过于简单），而高方差表示过拟合（模型过于复杂，以至于无法泛化）。考虑哪种模型（深度1或10）对应着上述的情况，并权衡偏差与方差。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#22238;&#31572;:">&#38382;&#39064; 5 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-5---&#22238;&#31572;:">&#182;</a></h3><p>根据r2_score的计算公式为r2_score = 1 - bias/variance,因此由上图可知当depth为1时r2_score最低，代表bias/variance最大，因此可知此时为高偏差，即欠拟合；当depth为10时此时Training score对应最高，即此时bias/variance最小，因此可知此时为高方差，及过拟合。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6--&#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;">&#38382;&#39064; 6- &#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;<a class="anchor-link" href="#&#38382;&#39064;-6--&#26368;&#20248;&#27169;&#22411;&#30340;&#29468;&#27979;">&#182;</a></h3><ul>
<li>结合问题 5 中的图，你认为最大深度是多少的模型能够最好地对未见过的数据进行预测？</li>
<li>你得出这个答案的依据是什么？</li>
</ul>
<p><strong>提示</strong>：查看问题5上方的图表，并查看模型在不同 <code>depth</code>下的验证分数。随着深度的增加模型的表现力会变得更好吗？我们在什么情况下获得最佳验证分数而不会使我们的模型过度复杂？请记住，奥卡姆剃刀：“在竞争性假设中，应该选择假设最少的那一个。”</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6---&#22238;&#31572;:">&#38382;&#39064; 6 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-6---&#22238;&#31572;:">&#182;</a></h3><ol>
<li>当depth为4时模型对未见过的数据预测效果最好，首先根据问题5图形呈现当depth为3时Training score与validation score随着数据集的增加逐渐接近特定值，且该值处于高点，而当depth为6时，两个score随着数据集增加同样都处于高点，但是已经出现了难以趋向相同特点值的状况及过拟合的状况发生，因此最优depth应该处于4-6之间。</li>
<li>再次观察问题6对应图表，我们可以看出Training score随着depth增加逐渐上升，但是validation score确在depth为4之后开始呈现下降的趋势，因此当depth为4时，训练模式的验证拟合度最好，且训练得分与验证得分都为高点，因此判断当depth为4时对未见过的数据预测性最高。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#31532;&#20116;&#27493;.-&#35780;&#20272;&#27169;&#22411;&#30340;&#34920;&#29616;">&#31532;&#20116;&#27493;. &#35780;&#20272;&#27169;&#22411;&#30340;&#34920;&#29616;<a class="anchor-link" href="#&#31532;&#20116;&#27493;.-&#35780;&#20272;&#27169;&#22411;&#30340;&#34920;&#29616;">&#182;</a></h2><p>在项目的最后一节中，你将构建一个模型，并使用 <code>fit_model</code> 中的优化模型去预测客户特征集。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7--&#32593;&#26684;&#25628;&#32034;&#65288;Grid-Search&#65289;">&#38382;&#39064; 7- &#32593;&#26684;&#25628;&#32034;&#65288;Grid Search&#65289;<a class="anchor-link" href="#&#38382;&#39064;-7--&#32593;&#26684;&#25628;&#32034;&#65288;Grid-Search&#65289;">&#182;</a></h3><ul>
<li>什么是网格搜索法？</li>
<li>如何用它来优化模型？</li>
</ul>
<p><strong>提示</strong>：在解释网格搜索算法时，首先要理解我们为什么使用网格搜索算法，以及我们使用它的最终目的是什么。为了使你的回答更具有说服力，你还可以给出一个模型中可以使用此方法进行优化参数的示例。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7---&#22238;&#31572;:">&#38382;&#39064; 7 - &#22238;&#31572;:<a class="anchor-link" href="#&#38382;&#39064;-7---&#22238;&#31572;:">&#182;</a></h3><ol>
<li>网格搜索法指的是在指定的范围内自动搜索具有不同超参数的不同模型组合；</li>
<li>通过网格搜索法尝试所有超参的组合，然后进行交叉验证，找到使交叉验证精确度最高的参数组合，得到最好的预测位置数据的模型。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#20132;&#21449;&#39564;&#35777;">&#38382;&#39064; 8 - &#20132;&#21449;&#39564;&#35777;<a class="anchor-link" href="#&#38382;&#39064;-8---&#20132;&#21449;&#39564;&#35777;">&#182;</a></h3><ul>
<li>什么是K折交叉验证法（k-fold cross-validation）？</li>
<li><a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html">GridSearchCV</a> 是如何结合交叉验证来完成对最佳参数组合的选择的？</li>
<li><a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html">GridSearchCV</a> 中的<code>'cv_results_'</code>属性能告诉我们什么？</li>
<li>网格搜索为什么要使用K折交叉验证？K折交叉验证能够避免什么问题？</li>
</ul>
<p><strong>提示</strong>：在解释k-fold交叉验证时，一定要理解'k'是什么，和数据集是如何分成不同的部分来进行训练和测试的，以及基于'k'值运行的次数。
在考虑k-fold交叉验证如何帮助网格搜索时，你可以使用特定的数据子集来进行训练与测试有什么缺点，以及K折交叉验证是如何帮助缓解这个问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#22238;&#31572;&#65306;">&#38382;&#39064; 8 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-8---&#22238;&#31572;&#65306;">&#182;</a></h3><ol>
<li>K折交叉验证法：由于现实数据有限，将训练数据进行分为K组，K-1组作为训练集，1组作为验证集，对模型进行K次训练，泛化误差为K次的平均，最终选择平均误差率最低的模型；</li>
<li>GridSearchCV进行自动调参，通过交叉验证，计算不同参数组合对应交叉验证的结果，然后根据返回测试得分排名最高的参数组合，即最佳参数组合；</li>
<li>以本次训练为例，该决策树模型，超参depth取1-10，cv_result_属性包含不同参数取值时的平均训练得分，平均测试得分，K折验证过程每次验证对应的训练得分与测试得分，包括训练及测试得分的方差，还可以得到模型训练所需要的时间及每次训练匹配时间的方差；</li>
<li>由于实际情况中数据集样本数较少，不适用交叉验证的方法会导致训练结果难以代表整体样本的分布情况，测试结果的拟合度也相对较低。交叉验证通过将数据分为K份，依次使用其中1份数据作为测试集，其余用于训练，K次训练，得出平均拟合状况，可以降低由于数据集样本较小造成的影响。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-4&#65306;&#25311;&#21512;&#27169;&#22411;">&#32534;&#31243;&#32451;&#20064; 4&#65306;&#25311;&#21512;&#27169;&#22411;<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-4&#65306;&#25311;&#21512;&#27169;&#22411;">&#182;</a></h3><p>在这个练习中，你将需要将所学到的内容整合，使用<strong>决策树算法</strong>训练一个模型。为了得出的是一个最优模型，你需要使用网格搜索法训练模型，以找到最佳的 <code>'max_depth'</code> 参数。你可以把<code>'max_depth'</code> 参数理解为决策树算法在做出预测前，允许其对数据提出问题的数量。决策树是<strong>监督学习算法</strong>中的一种。</p>
<p>另外，你会发现在实现的过程中是使用<code>ShuffleSplit()</code>作为交叉验证的另一种形式（参见'cv_sets'变量）。虽然它不是你在问题8中描述的K-fold交叉验证方法，但它同样非常有用！下面的<code>ShuffleSplit()</code>实现将创建10个('n_splits')混洗集合，并且对于每个混洗集，数据的20％（'test_size'）将被用作验证集合。当您在实现代码的时候，请思考一下它与<code>K-fold cross-validation</code>的不同与相似之处。</p>
<p>请注意，<code>ShuffleSplit</code> 在 <code>Scikit-Learn</code> 版本0.17和0.18中有不同的参数。对于下面代码单元格中的 <code>fit_model</code> 函数，您需要实现以下内容：</p>
<ol>
<li><strong>定义 <code>'regressor'</code> 变量</strong>: 使用  <code>sklearn.tree</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html"><code>DecisionTreeRegressor</code></a> 创建一个决策树的回归函数;</li>
<li><strong>定义 <code>'params'</code> 变量</strong>: 为 <code>'max_depth'</code> 参数创造一个字典，它的值是从1至10的数组;</li>
<li><strong>定义 <code>'scoring_fnc'</code> 变量</strong>: 使用 <code>sklearn.metrics</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html"><code>make_scorer</code></a>  创建一个评分函数。将 <code>‘performance_metric’</code> 作为参数传至这个函数中；</li>
<li><strong>定义 <code>'grid'</code> 变量</strong>: 使用 <code>sklearn.model_selection</code> 中的 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html"><code>GridSearchCV</code></a> 创建一个网格搜索对象；将变量<code>'regressor'</code>, <code>'params'</code>, <code>'scoring_fnc'</code>和 <code>'cross_validator'</code> 作为参数传至这个对象构造函数中；</li>
</ol>
<p>如果你对 Python 函数的默认参数定义和传递不熟悉，可以参考这个MIT课程的<a href="http://cn-static.udacity.com/mlnd/videos/MIT600XXT114-V004200_DTH.mp4">视频</a>。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Import &#39;make_scorer&#39;, &#39;DecisionTreeRegressor&#39;, and &#39;GridSearchCV&#39;</span>

<span class="kn">from</span> <span class="nn">sklearn.tree</span> <span class="k">import</span> <span class="n">DecisionTreeRegressor</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="k">import</span> <span class="n">make_scorer</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">GridSearchCV</span>

<span class="k">def</span> <span class="nf">fit_model</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot; Performs grid search over the &#39;max_depth&#39; parameter for a </span>
<span class="sd">        decision tree regressor trained on the input data [X, y]. &quot;&quot;&quot;</span>
    
    <span class="c1"># Create cross-validation sets from the training data</span>
    <span class="c1"># sklearn version 0.18: ShuffleSplit(n_splits=10, test_size=0.1, train_size=None, random_state=None)</span>
    <span class="c1"># sklearn versiin 0.17: ShuffleSplit(n, n_iter=10, test_size=0.1, train_size=None, random_state=None)</span>
    <span class="n">cv_sets</span> <span class="o">=</span> <span class="n">ShuffleSplit</span><span class="p">(</span><span class="n">n_splits</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.20</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
    
    <span class="c1"># TODO: Create a decision tree regressor object</span>
    <span class="n">regressor</span> <span class="o">=</span> <span class="n">DecisionTreeRegressor</span><span class="p">()</span>

    <span class="c1"># TODO: Create a dictionary for the parameter &#39;max_depth&#39; with a range from 1 to 10</span>
    <span class="n">params</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;max_depth&#39;</span><span class="p">:</span><span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">10</span><span class="p">)}</span>

    <span class="c1"># TODO: Transform &#39;performance_metric&#39; into a scoring function using &#39;make_scorer&#39; </span>
    <span class="n">scoring_fnc</span> <span class="o">=</span> <span class="n">make_scorer</span><span class="p">(</span><span class="n">performance_metric</span><span class="p">)</span>

    <span class="c1"># TODO: Create the grid search cv object --&gt; GridSearchCV()</span>
    <span class="c1"># Make sure to include the right parameters in the object:</span>
    <span class="c1"># (estimator, param_grid, scoring, cv) which have values &#39;regressor&#39;, &#39;params&#39;, &#39;scoring_fnc&#39;, and &#39;cv_sets&#39; respectively.</span>
    <span class="n">grid</span> <span class="o">=</span> <span class="n">GridSearchCV</span><span class="p">(</span><span class="n">regressor</span><span class="p">,</span> <span class="n">param_grid</span><span class="o">=</span> <span class="n">params</span><span class="p">,</span> <span class="n">scoring</span><span class="o">=</span> <span class="n">scoring_fnc</span><span class="p">,</span> <span class="n">cv</span> <span class="o">=</span> <span class="n">cv_sets</span><span class="p">)</span>

    <span class="c1"># Fit the grid search object to the data to compute the optimal model</span>
    <span class="n">grid</span> <span class="o">=</span> <span class="n">grid</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>

    <span class="c1"># Return the optimal model after fitting the data</span>
    <span class="k">return</span> <span class="n">grid</span><span class="o">.</span><span class="n">best_estimator_</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#31532;&#20845;&#27493;.-&#20570;&#20986;&#39044;&#27979;">&#31532;&#20845;&#27493;. &#20570;&#20986;&#39044;&#27979;<a class="anchor-link" href="#&#31532;&#20845;&#27493;.-&#20570;&#20986;&#39044;&#27979;">&#182;</a></h2><p>当我们用数据训练出一个模型，它现在就可用于对新的数据进行预测。在决策树回归函数中，模型已经学会对新输入的数据<em>提问</em>，并返回对<strong>目标变量</strong>的预测值。你可以用这个预测来获取数据未知目标变量的信息，这些数据必须是不包含在训练数据之内的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#26368;&#20248;&#27169;&#22411;">&#38382;&#39064; 9 - &#26368;&#20248;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-9---&#26368;&#20248;&#27169;&#22411;">&#182;</a></h3><p><em>最优模型的最大深度（maximum depth）是多少？此答案与你在<strong>问题 6</strong>所做的猜测是否相同？</em></p>
<p>运行下方区域内的代码，将决策树回归函数代入训练数据的集合，以得到最优化的模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Fit the training data to the model using grid search</span>
<span class="n">reg</span> <span class="o">=</span> <span class="n">fit_model</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># Produce the value for &#39;max_depth&#39;</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Parameter &#39;max_depth&#39; is </span><span class="si">{}</span><span class="s2"> for the optimal model.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">reg</span><span class="o">.</span><span class="n">get_params</span><span class="p">()[</span><span class="s1">&#39;max_depth&#39;</span><span class="p">]))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Parameter &#39;max_depth&#39; is 4 for the optimal model.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#22238;&#31572;&#65306;">&#38382;&#39064; 9 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-9---&#22238;&#31572;&#65306;">&#182;</a></h3><ol>
<li>最优模型的最大深度为4，与问题6中所做的猜测一致。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-10---&#39044;&#27979;&#38144;&#21806;&#20215;&#26684;">&#38382;&#39064; 10 - &#39044;&#27979;&#38144;&#21806;&#20215;&#26684;<a class="anchor-link" href="#&#38382;&#39064;-10---&#39044;&#27979;&#38144;&#21806;&#20215;&#26684;">&#182;</a></h3><p>想像你是一个在波士顿地区的房屋经纪人，并期待使用此模型以帮助你的客户评估他们想出售的房屋。你已经从你的三个客户收集到以下的资讯:</p>
<table>
<thead><tr>
<th style="text-align:center">特征</th>
<th style="text-align:center">客戶 1</th>
<th style="text-align:center">客戶 2</th>
<th style="text-align:center">客戶 3</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">房屋内房间总数</td>
<td style="text-align:center">5 间房间</td>
<td style="text-align:center">4 间房间</td>
<td style="text-align:center">8 间房间</td>
</tr>
<tr>
<td style="text-align:center">社区贫困指数（％被认为是贫困阶层）</td>
<td style="text-align:center">17%</td>
<td style="text-align:center">32%</td>
<td style="text-align:center">3%</td>
</tr>
<tr>
<td style="text-align:center">邻近学校的学生-老师比例</td>
<td style="text-align:center">15：1</td>
<td style="text-align:center">22：1</td>
<td style="text-align:center">12：1</td>
</tr>
</tbody>
</table>
<ul>
<li>你会建议每位客户的房屋销售的价格为多少？</li>
<li>从房屋特征的数值判断，这样的价格合理吗？为什么？</li>
</ul>
<p><strong>提示：</strong>用你在<strong>分析数据</strong>部分计算出来的统计信息来帮助你证明你的答案。</p>
<p>运行下列的代码区域，使用你优化的模型来为每位客户的房屋价值做出预测。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Produce a matrix for client data</span>
<span class="n">client_data</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">15</span><span class="p">],</span> <span class="c1"># Client 1</span>
               <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">22</span><span class="p">],</span> <span class="c1"># Client 2</span>
               <span class="p">[</span><span class="mi">8</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">12</span><span class="p">]]</span>  <span class="c1"># Client 3</span>

<span class="c1"># Show predictions</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">price</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">client_data</span><span class="p">)):</span>
    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Predicted selling price for Client </span><span class="si">{}</span><span class="s2">&#39;s home: $</span><span class="si">{:,.2f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="n">price</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Predicted selling price for Client 1&#39;s home: $391,183.33
Predicted selling price for Client 2&#39;s home: $189,123.53
Predicted selling price for Client 3&#39;s home: $942,666.67
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-10---&#22238;&#31572;&#65306;">&#38382;&#39064; 10 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-10---&#22238;&#31572;&#65306;">&#182;</a></h3><ol>
<li>客户1建议房屋销售价格为391183.33dollars，客户2建议销售价格为189123.53dollars，客户2建议销售价格为942666.67dollars；</li>
<li>分析数据部分我们得知整体房屋销售价格在105000~1024800dollars之间，房间总数越高价格相对也越高，贫困指数越低理论房屋价格将越高，学生-老师占比的值与房屋预测值也符合数值判断。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32534;&#31243;&#32451;&#20064;-5">&#32534;&#31243;&#32451;&#20064; 5<a class="anchor-link" href="#&#32534;&#31243;&#32451;&#20064;-5">&#182;</a></h3><p>你刚刚预测了三个客户的房子的售价。在这个练习中，你将用你的最优模型在整个测试数据上进行预测, 并计算相对于目标变量的决定系数 $R^2$ 的值。</p>
<p><strong>提示：</strong></p>
<ul>
<li>你可能需要用到 <code>X_test</code>, <code>y_test</code>, <code>optimal_reg</code>, <code>performance_metric</code>。</li>
<li>参考问题10的代码进行预测。</li>
<li>参考问题2的代码来计算R^2的值。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO Calculate the r2 score between &#39;y_true&#39; and &#39;y_predict&#39;</span>
<span class="n">y_predicted</span> <span class="o">=</span> <span class="n">reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_test</span><span class="p">)</span>
<span class="n">r2</span> <span class="o">=</span> <span class="n">performance_metric</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span> <span class="n">y_predicted</span><span class="p">)</span>

<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Optimal model has R^2 score </span><span class="si">{:,.2f}</span><span class="s2"> on test data&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">r2</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Optimal model has R^2 score 0.77 on test data
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;11---&#20998;&#26512;&#20915;&#23450;&#31995;&#25968;">&#38382;&#39064;11 - &#20998;&#26512;&#20915;&#23450;&#31995;&#25968;<a class="anchor-link" href="#&#38382;&#39064;11---&#20998;&#26512;&#20915;&#23450;&#31995;&#25968;">&#182;</a></h3><p>你刚刚计算了最优模型在测试集上的决定系数，你会如何评价这个结果？</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;11---&#22238;&#31572;">&#38382;&#39064;11 - &#22238;&#31572;<a class="anchor-link" href="#&#38382;&#39064;11---&#22238;&#31572;">&#182;</a></h3><p>由上可知，最优模型在测试集的决定系数为0.77,Test数据集中目标函数有77%可以用最优模型的特征进行解释。模型结果不是特别理想。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;&#20581;&#22766;&#24615;">&#27169;&#22411;&#20581;&#22766;&#24615;<a class="anchor-link" href="#&#27169;&#22411;&#20581;&#22766;&#24615;">&#182;</a></h3><p>一个最优的模型不一定是一个健壮模型。有的时候模型会过于复杂或者过于简单，以致于难以泛化新增添的数据；有的时候模型采用的学习算法并不适用于特定的数据结构；有的时候样本本身可能有太多噪点或样本过少，使得模型无法准确地预测目标变量。这些情况下我们会说模型是欠拟合的。</p>
<h3 id="&#38382;&#39064;-12---&#27169;&#22411;&#20581;&#22766;&#24615;">&#38382;&#39064; 12 - &#27169;&#22411;&#20581;&#22766;&#24615;<a class="anchor-link" href="#&#38382;&#39064;-12---&#27169;&#22411;&#20581;&#22766;&#24615;">&#182;</a></h3><p>模型是否足够健壮来保证预测的一致性？</p>
<p><strong>提示</strong>: 执行下方区域中的代码，采用不同的训练和测试集执行 <code>fit_model</code> 函数10次。注意观察对一个特定的客户来说，预测是如何随训练数据的变化而变化的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">vs</span><span class="o">.</span><span class="n">PredictTrials</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">prices</span><span class="p">,</span> <span class="n">fit_model</span><span class="p">,</span> <span class="n">client_data</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Trial 1: $391,183.33
Trial 2: $411,417.39
Trial 3: $415,800.00
Trial 4: $420,622.22
Trial 5: $413,334.78
Trial 6: $411,931.58
Trial 7: $390,250.00
Trial 8: $407,232.00
Trial 9: $402,531.82
Trial 10: $413,700.00

Range in prices: $30,372.22
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-12---&#22238;&#31572;&#65306;">&#38382;&#39064; 12 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-12---&#22238;&#31572;&#65306;">&#182;</a></h3><p>采用不同训练和测试集执行fit_model函数10次,客户1房屋价格的预测值在391183-423300dollars之间进行波动，价格波动范围为32116.67dollars，10次预测的标准差为9772，模型足够健壮保证预测一致性。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-13---&#23454;&#29992;&#24615;&#25506;&#35752;">&#38382;&#39064; 13 - &#23454;&#29992;&#24615;&#25506;&#35752;<a class="anchor-link" href="#&#38382;&#39064;-13---&#23454;&#29992;&#24615;&#25506;&#35752;">&#182;</a></h3><p><em>简单地讨论一下你建构的模型能否在现实世界中使用？</em></p>
<p>提示：回答以下几个问题，并给出相应结论的理由：</p>
<ul>
<li><em>1978年所采集的数据，在已考虑通货膨胀的前提下，在今天是否仍然适用？</em></li>
<li><em>数据中呈现的特征是否足够描述一个房屋？</em></li>
<li><em>在波士顿这样的大都市采集的数据，能否应用在其它乡镇地区？</em></li>
<li><em>你觉得仅仅凭房屋所在社区的环境来判断房屋价值合理吗？</em></li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-13---&#22238;&#31572;&#65306;">&#38382;&#39064; 13 - &#22238;&#31572;&#65306;<a class="anchor-link" href="#&#38382;&#39064;-13---&#22238;&#31572;&#65306;">&#182;</a></h3><ol>
<li>模型通过对房屋三个特征，房间数量、贫困人口占比、学生/教师比预测房屋价格，考虑了通货膨胀后，其价格波动与三个特性的相关性并没有发生该表，因此仍然是适用的；</li>
<li>数据中仅包含三个特性，房屋特征还包含，交通状况、房屋类型等因素影响，仅三个特征是不足够描述房屋状况；</li>
<li>城市采集数据不能应用与乡镇地区，不同地区房屋价格趋势是不同的，特征相对最终价格的关系存在很大差异；</li>
<li>仅凭借社区环境判断房屋价格不合理，房屋价格还与社区所处地理位置，周边配套设施等因素相关。</li>
</ol>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#31532;&#19971;&#27493;.&#23436;&#25104;&#21644;&#25552;&#20132;">&#31532;&#19971;&#27493;.&#23436;&#25104;&#21644;&#25552;&#20132;<a class="anchor-link" href="#&#31532;&#19971;&#27493;.&#23436;&#25104;&#21644;&#25552;&#20132;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>当你完成了以上所有的代码和问题，你需要将 iPython Notebook 导出 HTML，导出方法：在左上角的菜单中选择 <strong>File -&gt; Download as -&gt; HTML (.html)</strong>。当你提交项目时，需要包含<strong>可运行的 .ipynb 文件</strong>和<strong>导出的 HTML 文件</strong>。</p>

</div>
</div>
</div>
    </div>
  </div>
</body>

 


</html>
